#ifndef YOOHOO_XMPPCORE_IQ_H
#define YOOHOO_XMPPCORE_IQ_H

#include "xmppcore/stanza.h"
#include "xmppcore/protocolkey.h"

namespace yoohoo_xmppcore {

class YOOHOO_XMPPCORE_EXPORT Iq : public Stanza {
public:
	enum IqType {
		IqTypeSet,
		IqTypeGet,
		IqTypeResult
	};

	static const ProtocolKey PROTOCOL_KEY;

	Iq();
	Iq(const Iq& other);

	Stanza::StanzaKind stanzaKind() const;
	void setIqType(Iq::IqType iqType);
	Iq::IqType iqType() const;

protected:
	virtual void doToXml(XmlWriter* xmlWriter);

private:
	Iq::IqType _iqType;
};

}

#endif
